<!--
 * @FilePath     : /study_code_fork/public/iframe-child2.html
 * @Description  : iframe 不同域，调用父页面方法
 * @Date         : 2025-04-25 16:06:59
 * @Author       : Fang YingGui
 * @LastEditors  : fangyinggui 18715384437@163.com
 * @LastEditTime : 2025-04-25 16:58:51
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>documentName</title>
    <link rel="stylesheet" href="" />
  </head>
  <body>
    <h2>子页面2</h2>

    <script src="./sdk_child.js"></script>
    <script>
      function childFun() {
        console.log('子 页面方法执行')
      }

      // 调用当前窗口自身
      // window.self.childFun()
      // childFun()

      // 上一级父窗口调引用
      // window.parent.parentFun()

      // 最顶层窗口的引用
      // window.top.parentFun() // 这里只嵌套了一层，也指向父窗口

      // 直接调用也会报跨域错误

      // --------
      // 子页面传递信息给父页面
      window.parent.postMessage(
        {
          msg: 'daidaiwoba',
        },
        '*'
      )

      // ---
      // 1）触发父页面定义的方法
      window.SDK.sayHi({ msg: 'hi' })

      // 2）向父页面请求获取数据 uname
      var uname = ''
      window.SDK.getUname()
      setTimeout(function () {
        uname = window.SDK.uname
        //doSomething(uname);
      }, 200)
      // 备注：发送请求后，需要延时接收返回的数据
    </script>
  </body>
</html>
